import axios from 'axios'
import router from "../router";
import Element from "element-ui";
// axios.defaults.baseURL ="http://192.168.31.251:8084/api"
axios.defaults.baseURL ="http://localhost:8084/api"
//跨域问题
const request = axios.create({
  //创建一个axios对象，
  timeout:5000,//请求的超时毫秒数
  headers:{
    'Content-Type': "application/json; charset=utf-8"//即将发送的自定义请求头
  }
})
/*
  request请求拦截器
  主要功能让请求头带上token
 */
request.interceptors.request.use(config=>{
  if(localStorage.getItem('token')!==''&&localStorage.getItem('token')!==null)  config.headers['token'] =localStorage.getItem("token")
  return config
})

/*
  response响应拦截器
  主要功能是判断返回数据
  返回数据如果code是200,说明操作成功
  如果不是200则根据msg的值得出是系统异常还是业务异常
  业务异常的话状态码会发生改变，
  首先是判断结果是否为空，
  没有的话吧信息返回
  如果是401的话说明权限不足
 */
request.interceptors.response.use(response=>{
  let res=response.data
  if(res.code===200) {
    return response
  }
  else {
    Element.Message.error(!res.data?'系统异常':res.data)
    return Promise.reject(response)
  }
},error => {
  if(error.response.data){
    error.message=error.response.data
  }
  if(error.response.status=== 401){
    router.push("/login")
  }
  Element.Message.error(error.message,{duration:3000})
  return Promise.reject(error)
})
export default request
